其他
社区精选|抓包分析 TCP 握手和挥手
The following article is from mghio Author mghio
今天小编为大家带来的是社区作者 mghio 的文章,让我们一起来看看如何通过 Wireshark 抓包来分析 TCP 三次握手和四次挥手。
前言
首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务。在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂。反复思考过后,觉得我自己还是偏工程型的人,要学习这些理论性的知识,最好的方式还是要通过实际案例来理解,这样才会具象深刻。本文通过 Wireshark 抓包来分析 TCP 三次握手和四次挥手,如果你也对这些理论感觉似懂非懂,那么强烈建议你也结合抓包实践来强化理解这些理论性的知识。
第一步,client 端(这个示例也就是浏览器)发送 SYN 到 server 端; 第二步,server 端收到 SYN 消息后,回复 SYN + ACK 到 client 端,ACK 表示已经收到了 client 的 SYN 消息; 第三步,client 端收到回复 SYN + ACK 后,也回复一个 ACK 表示收到了 server 端的 SYN + ACK 了,其实
四次挥手
第一步,client 端主动发送 FIN 包给 server 端; 第二步,server 端回复 ACK(对应第一步 FIN 包的 ACK)给 client,表示 server 知道 client 端要断开了; 第三步,server 端发送 FIN 包给 client 端,表示 server 端也没有数据要发送了,可以断开了; 第四步,client 端回复 ACK 包给 server 端,表示既然双发都已发送 FIN 包表示可以断开,那么就真的断开了啊。
要可靠的实现 TCP 全双工连接终止; 让老的重复 segment 在网络中消失(一个 sement 在网络中存活的最长时间为 1 个 MSL,一来一回就是 2 MSL);